# 作者: 陈其志 
# 2025年02月21日22时38分17秒 
# 2716847110@qq.com
import os   # 目录操作需要导入这个包


def open_r():
    """
    :return:
    """
    file = open('mmexport1738413028332.jpg', 'r', encoding='utf-8')
    txt = file.read()
    file.close()


def open_rb():
    """
    以二进制模式打开，读出来的是字节流
    :return:
    """
    file = open('mmexport1738413028332.jpg', 'rb')
    content_byte = file.read()
    print(content_byte)
    file.close()


def copy_rb():
    """

    :return:
    """
    file = open('mmexport1738413028332.jpg', 'rb')
    file1 = open('zjz.jpg', 'wb')
    content_byte = file.read()
    file1.write(content_byte)
    file.close()
    file1.close()


def use_seek():
    file = open('file2', 'r+', encoding='utf-8')
    # 从头开始偏移0个字节 os.SEEK_END的意思是从文件尾开始偏移
    # os.SEEK_SET的意思是从文件头开始偏移 文本模式也不能向前偏移
    file.seek(0, os.SEEK_SET)  # 5是改变多少个字节  一个汉字3个字节，汉字必须是3的整数倍
    txt = file.read()
    print(txt)
    file.close()


def use_seek_w():
    """
    seek和w+的使用
    :return:
    """
    file = open('file1', 'w+', encoding='utf=8')  # w+会覆盖原文件，重新写
    file.write('hello python world!')  # 这里写完，光标在开头
    # 二进制模式下才可以往前偏，二进制模式下 offset 才能为负值
    file.seek(0, os.SEEK_SET)  # 光标回到开头
    txt = file.read()
    print(txt)
    file.close()


if __name__ == '__main__':
    # open_rb()
    # open_r()
    # copy_rb()
    # use_seek()
    use_seek_w()
